package com.auto.autoapp.network.interceptor

import android.util.Log
import com.auto.autoapp.util.SpUtil
import okhttp3.Interceptor
import okhttp3.Response

/**
 * 请求头拦截器
 * 用于统一添加请求头信息
 */
class HeaderInterceptor : Interceptor {

    override fun intercept(chain: Interceptor.Chain): Response {
        val originalRequest = chain.request()


        // 构建新的请求，添加统一的请求头
        val requestBuilder = originalRequest.newBuilder()
            .header("Content-Type", "application/json")
            .header("Accept", "application/json")
            // 可以添加 Token
            // .header("Authorization", "Bearer ${getToken()}")
            // 可以添加设备信息
            // .header("User-Agent", getUserAgent())
            // 可以添加其他自定义请求头
            .method(originalRequest.method, originalRequest.body)

        val userInfo = SpUtil.getUserInfo()
        if (!userInfo?.token.isNullOrEmpty()) {
            requestBuilder
                .header("shopno", userInfo.shopNo ?: "")
                .header("mobno", "357808032700002")
        }
//        Log.e("TAG", "intercept: ${userInfo?.shopNo}")

        val newRequest = requestBuilder.build()
        return chain.proceed(newRequest)
    }

    /**
     * 获取 Token（示例方法）
     * 实际项目中可以从 SharedPreferences 或其他存储中获取
     */
    private fun getToken(): String {
        // TODO: 实现获取 Token 的逻辑
        return ""
    }

    /**
     * 获取 User-Agent（示例方法）
     * 实际项目中可以根据设备信息动态生成
     */
    private fun getUserAgent(): String {
        // TODO: 实现获取 User-Agent 的逻辑
        return "Android/AutoApp"
    }
}


